home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1995 April / Internet Tools.iso / ip / nfs / nfstrace.shar.Z / nfstrace.shar / nfslex.l < prev    next >
Encoding:
Lex Description  |  1992-02-06  |  1.2 KB  |  66 lines

  1. %{
  2. char *unstring();
  3. %}
  4. %%
  5. [ \t]        ;
  6.  
  7. \n        { return NL; }
  8.  
  9. \|        { return FS; }
  10.  
  11. "{"        { return OPEN; }
  12. "}"        { return CLOSE; }
  13.  
  14. ","        { return COMMA; }
  15.  
  16. \#([^\n])*    { yylval=addstring(yytext);
  17.           return COMMENT; }
  18.  
  19. "ok"        { return OK; }
  20. "failed"    { return FAILED; }
  21. "null"        { return PROC_NULL; }
  22. "getattr"    { return PROC_GETATTR; }
  23. "setattr"    { return PROC_SETATTR; }
  24. "root"        { return PROC_ROOT; }
  25. "lookup"    { return PROC_LOOKUP; }
  26. "readlink"    { return PROC_READLINK; }
  27. "read"        { return PROC_READ; }
  28. "writecache"    { return PROC_WRITECACHE; }
  29. "write"        { return PROC_WRITE; }
  30. "creat"        { return PROC_CREAT; }
  31. "remove"    { return PROC_REMOVE; }
  32. "rename"    { return PROC_RENAME; }
  33. "link"        { return PROC_LINK; }
  34. "symlink"    { return PROC_SYMLINK; }
  35. "mkdir"        { return PROC_MKDIR; }
  36. "rmdir"        { return PROC_RMDIR; }
  37. "readdir"    { return PROC_READDIR; }
  38. "statfs"    { return PROC_STATFS; }
  39.  
  40. \"(([^\"\n])|(\\[.\n]))*\"    { yylval=addstring(unstring(yytext));
  41.               return STRING; }
  42. ([^ \t\n,#\{\}\|])*    { yylval=addstring(yytext);
  43.               return STRING; }
  44. %%
  45.  
  46. /*
  47.  * good enough
  48.  */
  49. char *unstring(s)
  50.      char *s;
  51. {
  52.     static char buf[2048];
  53.     int i;
  54.  
  55.     i=0;
  56.     for (i=0; *s; s++) {
  57.         if (*s == '"')
  58.             continue;
  59.         if (*s == '\\')
  60.             s++;
  61.         buf[i++] = *s;
  62.     }
  63.     buf[i]='\0';
  64.     return buf;
  65. }
  66.